library(Signac)
library(Seurat)
# load dataset
E = Read10X_h5(filename = "../../Data/CITESEQ_EXPLORATORY_CITESEQ_5K_PBMCS/rawdata/Sample1/pbmc_10k_protein_v3_raw_feature_bc_matrix.h5")
pbmc <- CreateSeuratObject(counts = E$`Gene Expression`, project = "pbmc5k", min.cells = 3, min.features = 200)
pbmc[["percent.mt"]] <- PercentageFeatureSet(pbmc, pattern = "^MT-")
pbmc <- subset(pbmc, subset = nFeature_RNA > 200 & nFeature_RNA < 2500 & percent.mt < 10)
pbmc <- NormalizeData(object = pbmc, verbose = F)
pbmc <- FindVariableFeatures(pbmc, selection.method = "vst", nfeatures = 2000)
pbmc <- ScaleData(pbmc)
pbmc <- RunPCA(pbmc, verbose = F)
pbmc <- FindNeighbors(pbmc, dims = 1:25)
pbmc <- FindClusters(pbmc, resolution = 0.8)
pbmc <- RunUMAP(pbmc, dims = 1:10)
# Run Signac
data("Reference_sim")
labels <- Signac(pbmc, R = Reference_sim) # optionally do parallel computing by setting num.cores > 1
celltypes = Generate_lbls(labels, E = pbmc)
pbmc <- Seurat::AddMetaData(pbmc, metadata=celltypes$Immune, col.name = "immmune")
pbmc <- Seurat::SetIdent(pbmc, value='immmune')
DimPlot(pbmc)
pbmc <- Seurat::AddMetaData(pbmc, metadata=celltypes$L2, col.name = "celltypes")
pbmc <- Seurat::SetIdent(pbmc, value='celltypes')
DimPlot(pbmc)
lbls = factor(celltypes$CellTypes)
levels(lbls) <- sort(unique(lbls))
pbmc <- Seurat::AddMetaData(pbmc, metadata=lbls, col.name = "celltypes")
pbmc <- Seurat::SetIdent(pbmc, value='celltypes')
DimPlot(pbmc)
lbls = factor(celltypes$CellStates)
levels(lbls) <- sort(unique(lbls))
pbmc <- Seurat::AddMetaData(pbmc, metadata=lbls, col.name = "celltypes")
pbmc <- Seurat::SetIdent(pbmc, value='celltypes')
DimPlot(pbmc)
Add protein expression information
pbmc[["ADT"]] <- CreateAssayObject(counts = E$`Antibody Capture`[,colnames(E$`Antibody Capture`) %in% colnames(pbmc)])
pbmc <- NormalizeData(pbmc, assay = "ADT", normalization.method = "CLR")
pbmc <- ScaleData(pbmc, assay = "ADT")
FeaturePlot(pbmc, features = c("CD8a-TotalSeqB", "CD8A"), min.cutoff = "q05", max.cutoff = "q95", ncol = 2)
## Warning: Could not find CD8a-TotalSeqB in the default search locations, found in ADT assay instead
RidgePlot(pbmc, features = c("CD8a-TotalSeqB", "CD4-TotalSeqB"), ncol = 2)
## Warning: Could not find CD8a-TotalSeqB in the default search locations, found in ADT assay instead
## Warning: Could not find CD4-TotalSeqB in the default search locations, found in ADT assay instead
## Picking joint bandwidth of 0.151
## Picking joint bandwidth of 0.0573
# Downsample the clusters to a maximum of 500 cells each (makes the heatmap easier to see for
# small clusters)
pbmc.small <- subset(pbmc, downsample = 500)
# Find protein markers for all clusters, and draw a heatmap
adt.markers <- FindAllMarkers(pbmc.small, assay = "ADT", only.pos = TRUE, verbose = F)
DoHeatmap(pbmc.small, features = unique(adt.markers$gene), assay = "ADT", angle = 90) + NoLegend()
DefaultAssay(pbmc) <- "ADT"
pbmc <- FindVariableFeatures(pbmc, selection.method = "vst")
pbmc <- ScaleData(pbmc)
pbmc <- RunPCA(pbmc, verbose = F)
pbmc <- FindNeighbors(pbmc)
pbmc <- FindClusters(pbmc, resolution = 0.8)
pbmc <- RunUMAP(pbmc, dims = 1:10)
lbls = factor(celltypes$CellTypes)
levels(lbls) <- sort(unique(lbls))
pbmc <- Seurat::AddMetaData(pbmc, metadata=lbls, col.name = "celltypes")
pbmc <- Seurat::SetIdent(pbmc, value='celltypes')
DimPlot(pbmc)
lbls = factor(celltypes$CellStates)
levels(lbls) <- sort(unique(lbls))
pbmc <- Seurat::AddMetaData(pbmc, metadata=lbls, col.name = "celltypes")
pbmc <- Seurat::SetIdent(pbmc, value='celltypes')
DimPlot(pbmc)
FeaturePlot(pbmc, features = c("CD8a-TotalSeqB", "CD8A"), min.cutoff = "q05", max.cutoff = "q95")
## Warning: Could not find CD8A in the default search locations, found in RNA assay instead
A work by Mathew Chamberlain
mathew.chamberlain@sanofi.com